\section{行列式的计算}

\begin{frame}{矩阵}
下面我们利用行列式的性质给出一个计算行列式的方法。

在 \S3 我们看到， 上三角形行列式
\[
  \begin{vmatrix}
  a_{11} & a_{12} & a_{13} & \cdots & a_{1 n} \\
0 & a_{22} & a_{23} & \cdots & a_{2 n} \\
0 & 0 & a_{33} & \cdots & a_{3 n} \\
\vdots & \vdots & \vdots & & \vdots \\
0 & 0 & 0 & \cdots & a_{n n}
\end{vmatrix}
\]
就等于它主对角线上元素的乘积
\[
a_{11} a_{22} \cdots a_{n n}.
\]
这个计算是很简单的。下面我们想办法把任意的 $n$ 阶行列式化为上三角形行列式来计算。

\pause
为了便于叙述并考虑到以后的应用，我们引进矩阵及矩阵的初等行变换的概念。



\end{frame}

\begin{frame}

\begin{definition}%定义5 
由 $s n$ 个数排成的 $s$ 行 (横的) $n$ 列 (纵的)的表
\begin{equation}
  \begin{pmatrix}
    a_{11} & a_{12} & \cdots & a_{1 n} \\
  a_{21} & a_{22} & \cdots & a_{2 n} \\
\vdots & \vdots & & \vdots \\
a_{s 1} & a_{s 2} & \cdots & a_{s n}
\end{pmatrix}
\end{equation}
称为一个 \emph{$s \times n$ 矩阵}。
\end{definition}

\pause
\begin{example}
  $\begin{pmatrix}
        1 & 0 & \frac{1}{2} & 2 \\
        -1 & 2 & 1 & 0
  \end{pmatrix}$,
  $\begin{pmatrix}
        1 & 1 & 2 \mathrm{i} \\
        0 & \mathrm{i} & 1 \\
      3 & 2 & 1
\end{pmatrix}$
分别是一个 $2 \times 4$ 矩阵和一个 $3 \times 3$ 矩阵。
\end{example}


\pause
数 $a_{i j}$ ($i=1,2, \cdots, s, j=1,2, \cdots, n$) 称为矩阵 (1) 的 \emph{$(i, j)$ 元素}， 简称为元， $i$ 称为元素 $a_{i j}$ 的\emph{行指标}， $j$ 称为\emph{列指标}。 
\pause
当一个矩阵的元素全是某一数域 $P$ 中的数时， 它就称为这一\emph{数域 $P$ 上的矩阵}。 
在上面所举的例子中，第一个是有理数域$\bQ$上 (当然也是实数域上、复数域上) 的矩阵，
第二个是 $\bQ(i)$上 (当然也是复数域上) 的矩阵。
\pause
所有数域$P$上的$s\times n$矩阵的集合记作$P^{s\times n}$.

\end{frame}


\begin{frame}
在矩阵中忽略（尤其是成片的）$0$不写而留下空白是我们的惯例（也有习惯是在成片的某个好看的位置上留下一个$0$表示忽略的是$0$）。
例如：
\[
    \begin{pmatrix}
        1& 2\\
        & 3
    \end{pmatrix}=\begin{pmatrix}
        1& 2\\
        0 & 3
    \end{pmatrix},\quad 
    \begin{pmatrix}
        1 \\ &  2 \\ && 3
    \end{pmatrix} = \begin{pmatrix}
        1  & & 0\\ &  2 \\ 0 && 3
    \end{pmatrix} = \begin{pmatrix}
        1  & 0 & 0 \\ 0 &  2 & 0 \\ 0 & 0 & 3
    \end{pmatrix}.
\]

\pause
  $n \times n$ 矩阵也称 \emph{$n$ 阶方阵}。一个 $n$ 阶方阵
\[
  A=\begin{pmatrix}
    a_{11} & a_{12} & \cdots & a_{1 n} \\
  a_{21} & a_{22} & \cdots & a_{2 n} \\
\vdots & \vdots & & \vdots \\
a_{n 1} & a_{n 2} & \cdots & a_{n n}
\end{pmatrix}
\]
可以定义一个 $n$ 阶行列式
\[
  \begin{vmatrix}
  a_{11} & a_{12} & \cdots & a_{1 n} \\
a_{21} & a_{22} & \cdots & a_{2 n} \\
\vdots & \vdots & & \vdots \\
a_{n 1} & a_{n 2} & \cdots & a_{n n}
\end{vmatrix},
\]
称为\emph{矩阵 $ A$ 的行列式}， 记作 $| A|$或$\det A$.
\pause
取方阵的行列式定义了一个行列式映射
\[
  \det\colon P^{n\times n}\rightarrow P, \quad A \mapsto |A|.
\]



\end{frame}

\begin{frame}
下面来定义矩阵的初等行变换。

\begin{definition}%定义6 
  所谓数域 $P$ 上矩阵的\emph{初等行变换}是指下列三种变换：
  \pause
\begin{enumerate}
    \item 以 $P$ 中一个非零的数乘矩阵的某一行;
\pause
      \item 把矩阵的某一行的 $c$ 倍加到另一行， 这里 $c$ 是 $P$ 中任意一个数;
\pause
        \item 互换矩阵中两行的位置。

    \end{enumerate}
\end{definition}

\pause
一般说来，一个矩阵经过初等行变换后， 就变成了另一个矩阵。 譬如说， 把矩阵
\[
  \begin{pmatrix}
    1 & 0 & 2 & 1 \\
  2 & 1 & 0 & 2 \\
-1 & 2 & 1 & 3
\end{pmatrix}
\]
第 1 行的 $-2$ 倍加到第 2 行， 就得到矩阵
\[
  \begin{pmatrix}
    1 & 0 & 2 & 1 \\
  0 & 1 & -4 & 0 \\
-1 & 2 & 1 & 3
\end{pmatrix}
\]
\pause
当矩阵 $ A$ 经过初等行变换变成矩阵 $ B$ 时，我们写成
\[
 A \rightarrow  B .
\]
\end{frame}

\begin{frame}
我们称形式如
\[
\vcenter{\hbox{\begin{tikzpicture}
      \matrix (m1)[matrix of math nodes,left delimiter=(,right delimiter=),ampersand replacement=\&] {
    0 \& 1 \& 2 \& -1 \\
  0 \& 0 \& 0 \& 1 \\
0 \& 0 \& 0 \& 0 \\
};
\draw [dotted] (m1-1-2.north west) -- (m1-1-2.south west) -- (m1-2-4.north west) 
-- (m1-2-4.south west) -- (m1-2-4.south east);
\node [right= .7em of m1] {,};
\matrix (m2)[matrix of math nodes,left delimiter=(,right delimiter=),ampersand replacement=\&, right=3em of m1] {
  1 \& 2 \& 1 \& -1 \& 2 \\
0 \& 0 \& 1 \& 0 \& 2 \\
0 \& 0 \& 0 \& 2 \& 3\\
};
\draw [dotted] (m2-1-1.north west) -- (m2-1-1.south west) -- (m2-2-3.north west) 
-- (m2-2-3.south west) -- (m2-3-4.north west) -- (m2-3-4.south west) -- (m2-3-5.south east);
\node [right= .7em of m2] {,};
\matrix (m3)[matrix of math nodes,left delimiter=(,right delimiter=),ampersand replacement=\&,right=3em of m2] {
 1 \& 0 \& -1 \\
0 \& 2 \& 1 \\
0 \& 0 \& 3\\
};
\draw [dotted] (m3-1-1.north west) -- (m3-1-1.south west) -- (m3-2-2.north west) 
-- (m3-2-2.south west) -- (m3-3-3.north west) -- (m3-3-3.south west) -- (m3-3-3.south east);
\end{tikzpicture}}}
\]
的矩阵为\emph{阶梯形矩阵}。
\pause
阶梯形矩阵按定义是具有如下特点的矩阵：任一行从第一个元素起至该行的第一个非零元素所在的下方全为零；如该行全为零，则它的下面的行也全为零。或者说，形如
\begin{equation*}
    \vcenter{\hbox{\begin{tikzpicture}
          \matrix (magic) [matrix of math nodes,left delimiter=(,right delimiter=),ampersand replacement=\&]
        {
            0 \& \cdots \& 0 \& \node (s1) {\varstar}; \& * \& \cdots \& * \& * \& * \& \cdots \& * \& * \& * \& \cdots \& * \& \cdots \\
            \&\&\& \node (s2) {\phantom{\varstar}}; \& \& \& \&  \node (s3) {\varstar};  \& * \& \cdots \& * \& * \& * \& \cdots \& * \& \cdots \\
            \&\&\& \& \& \& \& \node (s4) {\phantom{\varstar}}; \& \& \& \&  \node (s5) {\varstar}; \& * \& \cdots \& * \& \cdots\\
            \&\&\&\&\&\&\&\&\&\&\& \node (s6) {\phantom{\varstar}}; \&\& \node (s7) {\phantom{\varstar}}; \&\& \ddots\\
                \node (h1) {\phantom{0}}; \&\&\&\&\&\&\&\&\&\&\&\&\&\& \& \node (h2) {\symbf{0}}; \\
        };
        \draw  (h1.north west) -- (h2.north east);
        \draw [dotted] (s1.north west) -- (s2.north west) -- (s3.north west) -- (s4.north west)
        -- (s5.north west) -- (s6.north west) -- (s7.north west);
\end{tikzpicture}}},
\end{equation*}
其中大片的空白表示$0$, 粗体的$\symbf{0}$表示落在最后的可能的一些零行，$*$表示任意数，$\varstar$标出的则是非零行的第一个非零元素。
\pause
  \begin{observation*}
  任意一个矩阵经过一系列初等行变换总能变成阶梯形矩阵。
\end{observation*}

\end{frame}
\begin{frame}


\begin{proof}
设
\[
   A=\begin{pmatrix}
      a_{11} & a_{12} & \cdots & a_{1 n} \\
      a_{21} & a_{22} & \cdots & a_{2 n} \\
    \vdots & \vdots & & \vdots \\
  a_{s 1} & a_{s 2} & \cdots & a_{s n}
\end{pmatrix} .
\]
我们看第 1 列的元素 $a_{11}, a_{21}, \cdots, a_{s 1}$, 只要其中有一个不为零 (没有的话忽略该列，不影响结果)， 用初等行变换 \circled{3}, 总能使第 1 列的第 1 个元素不为零， 然后从第 2 行开始， 每一行都加上第 1 行的一个适当的倍数，于是第 1 列除去第 1 个元素外就全是零了。 这就是说， 经过一系列初等行变换后 (省略了左边可能存在的零列)
\[
   A \rightarrow  J_{1}=\begin{pmatrix}
      a_{11}^{\prime} & a_{12}^{\prime} & \cdots & a_{1 n}^{\prime} \\
      0 & a_{22}^{\prime} & \cdots & a_{2 n}^{\prime} \\
    \vdots & \vdots & & \vdots \\
  0 & a_{s 2}^{\prime} & \cdots & a_{s n}^{\prime}
\end{pmatrix}
\]
对于 $J_{1}$ 中右下角的一块
$
  \begin{pmatrix}
      a_{22}^{\prime} & \cdots & a_{2 n}^{\prime} \\
      \vdots & & \vdots \\
    a_{s 2}^{\prime} & \cdots & a_{s n}^{\prime}
  \end{pmatrix},
$
再重复以上的做法。 如此做下去直到变成阶梯形为止。 如果原来矩阵 $ A$ 中第 1 列的元素全为零，那么就依次考虑它的第 2 列的元素，等等。\end{proof}
\end{frame}


\begin{frame}


为了方便，我们如下来记三类初等行变换 (注意下我们的习惯是把被操作的行写在左边):

\begin{enumerate}
\item $r_i\times c$表示第 $i$行乘以非零数$c$;
\item $r_i + r_j\times a$表示第$i$行加上第$j$行的$a$倍。
\item $r_i\leftrightarrow r_j$表示第$i$行与第$j$行交换；
\end{enumerate}
    
\pause
    \begin{example}
\[
  \begin{aligned}
   & A
   =  \begin{pmatrix}
       0 & 0 & -1 & -1 & 2 \\
           1 & 4 & -1 & 0 & 2 \\
           -1 & -4 & 2 & -1 & 0 \\
         2 & 8 & 1 & 1 & 0
     \end{pmatrix} 
     \xrightarrow{r_1\leftrightarrow r_2} \begin{pmatrix}
             1 & 4 & -1 & 0 & 2 \\
               0 & 0 & -1 & -1 & 2 \\
               -1 & -4 & 2 & -1 & 0 \\
             2 & 8 & 1 & 1 & 0
         \end{pmatrix} 
         \xrightarrow[r_4-2r_1]{r_3+r_1} \\
         & \begin{pmatrix}
           1 & 4 & -1 & 0 & 2 \\
         0 & 0 & -1 & -1 & 2 \\
       0 & 0 & 1 & -1 & 2 \\
     0 & 0 & 3 & 1 & -4
 \end{pmatrix} 
\xrightarrow[r_4+3r_2]{r_3+r_2} \begin{pmatrix}
   1 & 4 & -1 & 0 & 2 \\
 0 & 0 & -1 & -1 & 2 \\
 0 & 0 & 0 & -2 & 4 \\
 0 & 0 & 0 & -2 & 2
 \end{pmatrix}
 \xrightarrow{r_4-r_3} 
\begin{pmatrix}
   1 & 4 & -1 & 0 & 2 \\
 0 & 0 & -1 & -1 & 2 \\
 0 & 0 & 0 & -2 & 4 \\
 0 & 0 & 0 & 0 & -2
 \end{pmatrix}.
 \end{aligned}
 \]
 这样就把 $ A$ 变成了一个阶梯形矩阵。
 \end{example}
 \end{frame}


\begin{frame}

现在回过来讨论行列式的计算问题。一个 $n$ 阶行列式可看成是由一个 $n$ 阶方阵 $A$决定的，
对于矩阵可以作初等行变换，而行列式的性质 2,6,7 正是说明了方阵的初等行变换对于行列式的值的影响。
\pause
每个方阵 $ A$ 总可以经过一系列的初等行变换变成阶梯形方阵 $ J$. 
由行列式性质 2,6,7, 对方阵每作一次初等行变换，相应地，行列式或者不变，或者差一非零的倍数，也就是
$| A|=k| J|$, $k \neq 0$.
\pause
注意到阶梯形方阵的行列式都是上三角形的 
(由于非零行的第一个非零元的列指标是严格递增的，
若第$i$行为非零行，则必有此行第一个非零元$a_{ij_i}$的列指标$j_i\geqslant i$),
因此 $| J|$ 是容易计算的。

\begin{example}
  \[
  \begin{aligned}
    \begin{vmatrix}
      -2 & 5 & -1 & 3 \\
      1 & -9 & 13 & 7\\
      3 & -1 & 5 & -5\\
      2 &  8 & -7 & -10
    \end{vmatrix} 
\pause
    &= 
    -\begin{vmatrix}
      1 & -9 & 13 & 7\\
       -2 & 5 & -1 & 3 \\
      3 & -1 & 5 & -5\\
      2 &  8 & -7 & -10     
    \end{vmatrix}
    =  -\begin{vmatrix}
      1 & -9 & 13 & 7 \\
      0 & -13 & 25 & 17 \\
      0 & 26 & -34  & -26\\
      0 & 26 & -33 & -24
    \end{vmatrix}\\
    \pause
    &= -\begin{vmatrix}
      1 & -9 & 13 & 7 \\
      0 & -13 & 25 & 17 \\
      0 & 0 & 16  & 8\\
      0 & 0 & 17 & 10
    \end{vmatrix} = 
    -\begin{vmatrix}
      1 & -9 & 13 & 7 \\
      0 & -13 & 25 & 17 \\
      0 & 0 & 16  & 8\\
      0 & 0 & 0 & \frac{3}{2}
    \end{vmatrix}\\
    \pause
    &= -(-13)\times 16 \times \frac{3}{2} = 312.
  \end{aligned}
\]
这里，第一步是互换第 1,2 两行， 以下都是把一行的倍数加到另一行。
\end{example}
\end{frame}
\begin{frame}
  \begin{example}
    我们断言
    \begin{equation}\label{127}
\begin{vmatrix}
  a_{11} & \cdots & a_{1 k} & c_{11} & \cdots & c_{1r}  \\
\vdots & & \vdots & \vdots & & \vdots \\
a_{k 1} & \cdots & a_{k k} & c_{k1} & \cdots & c_{kr} \\
0& \cdots &  0 & b_{11} & \cdots & b_{1 r} \\
\vdots & & \vdots & \vdots & & \vdots \\
0 & \cdots & 0 & b_{r 1} & \cdots & b_{r r}
\end{vmatrix}=\begin{vmatrix}
a_{11} & \cdots & a_{1 k} \\
\vdots & & \vdots \\
a_{k 1} & \cdots & a_{k k}
\end{vmatrix}\begin{vmatrix}
b_{11} & \cdots & b_{1 r} \\
\vdots & & \vdots \\
b_{r 1} & \cdots & b_{r r}
\end{vmatrix} .
\end{equation}
(2)左边这种形状的行列式称为\emph{准上三角形}行列式，其转置后的形状称为\emph{准下三角形}行列式。
\pause
若记
\[
  \begin{aligned}
  A&= \begin{pmatrix}
    a_{11} & \cdots & a_{1 k} \\
\vdots & & \vdots \\
a_{k 1} & \cdots & a_{k k}  \\
  \end{pmatrix}, &   O&= \begin{pmatrix}
    0 & \cdots & 0\\
    \vdots &  & \vdots \\
    0 & \cdots & 0
  \end{pmatrix}, \\
  B&= \begin{pmatrix}
  b_{11} & \cdots & b_{1 r} \\
\vdots & & \vdots \\
 b_{r 1} & \cdots & b_{r r}
  \end{pmatrix}, & 
  C&= \begin{pmatrix}
  c_{11} & \cdots & c_{1 r}\\
\vdots & & \vdots \\
c_{k 1} & \cdots & c_{ kr}   
  \end{pmatrix},
\end{aligned}
\]
        \end{example}
\end{frame}

\begin{frame}
  \addtocounter{theorem}{-1}
  \begin{example}[续]
那么~\eqref{准下三角矩阵的行列式的公式}~可写为
    \begin{equation}
      \begin{vmatrix}
        A  & C\\ O& B
      \end{vmatrix} =|A||B|.
    \end{equation}
    \pause
  这就得到了准上三角形行列式的公式。借助转置也可得准下三角形行列式的公式
    \begin{equation}
      \begin{vmatrix}
        A'  & O\\ C' & B'
      \end{vmatrix} =|A'||B'|,
    \end{equation}
    只要$A', B'$是方阵，$O$的元素都是$0$. 
\pause
    例如
    \[
       \begin{vmatrix}
        1 & 2 & 3 & 4 & 0\\
        -1 & 0 & 1 & 5& 6\\
        0 & 0 & 1 & 3 & -1 \\
        0 & 0 & 1 & 3 & 2 \\
        0 & 0 & -2 & 1 & 4
      \end{vmatrix}  = \begin{vmatrix}
        1 & 2 \\ -1 & 0
      \end{vmatrix} \cdot \begin{vmatrix}
        1 & 3 & -1 \\ 1 & 3 & 2\\ -2 & 1 & 4
      \end{vmatrix}=
      \begin{vmatrix}
        1 & -1 & 0 & 0 & 0 \\
        2 & 0 & 0& 0 & 0\\
        3 & 1 & 1 & 1 & -2 \\
        4 & 5 & 3 & 3 & 1\\
        0 & 6 & -1 & 2 & 4
      \end{vmatrix}.
    \]
        \end{example}
\end{frame}

\begin{frame}
  \begin{proof}
          存在一系列的初等行变换使得$A$变成了上三角阵
            $A_1=\begin{pmatrix}
              a_1 & \cdots & * \\
              & \ddots & \vdots \\
              & & a_k
          \end{pmatrix}$.
        假设这一系列的行变换对行列式的效果
        为乘了$a$, 此时$a|A|=|A_1|=a_1\cdots a_k$.
    %由于$a\neq 0$, $|A| = a^{-1}a_1\cdots. a_k$.
        \pause
  存在一系列的初等行变换使得$B$变成了上三角阵
  $B_1=\begin{pmatrix}
    b_1 & \cdots & * \\
    & \ddots & \vdots \\
    & & b_r
\end{pmatrix}$;
假设这一系列的行变换对行列式的效果
为乘了$b$, 此时$b|B|=|B_1|=b_1 \cdots b_r$.
\pause
进而$\begin{pmatrix}
    A  & C \\  O & B
    \end{pmatrix}$
    可经过一些初等行变换把$A$化成$A_1$, 再把$B$化成$B_1$; 
    设$C$被化成了$C_1$, 则我们得到了上三角形矩阵$\begin{pmatrix}
    A_1  & C_1 \\  O & B_1
    \end{pmatrix}$. 
    这一系列变换的效果是乘了$ba$
    （注意初等行变换对行列式的效果不依赖于行号）。
    这样
    \[
        ba \begin{vmatrix}
            A  & C\\ O &  B
          \end{vmatrix}=\begin{vmatrix}
            A_1 & C_1 \\ O & B_1
          \end{vmatrix}=a_1\cdots a_k b_1 \cdots b_r.
        \]
        \pause
      从而
    \[
      |A||B|=(a^{-1} a_1\cdots a_k) (b^{-1} b_1 \cdots b_r) = \begin{vmatrix}
          A  & C \\ O & B
          \end{vmatrix}.
      \]
  \end{proof}
\end{frame}

\begin{frame}
不难算出，用这个方法计算一个 $n$ 阶的数字行列式只需要做 $\frac{n^{3}+2 n-3}{3}$ 次乘法和除法。 特别当 $n$ 比较大的时候， 这个方法的优越性就更加明显了。 同时还应该看到，这个方法完全是机械的，因而可以用计算机按这个方法来进行行列式的计算。

\pause
最后我们指出， 对于矩阵我们同样地可以定义初等列变换， 即

\begin{enumerate}
    \item 以数域 $P$ 中一非零的数乘矩阵的某一列;
\pause
      \item 把矩阵的某一列的 $c$ 倍加到另一列， 这里 $c$ 是 $P$ 中任意一个数;
\pause
        \item 互换矩阵中两列的位置。

    \end{enumerate}

    \pause
与初等行变换类似地， 我们有三类初等列变换的如下记号：
\[c_i\leftrightarrow c_j, \quad c_i\times c, \quad c_i+c_j\times a. \]

\pause
  为了计算行列式，我们也可以对矩阵进行初等列变换。 有时候， 同时用初等行变换
和初等列变换，行列式的计算可以更简单些。

\pause
矩阵的初等行变换与初等列变换统称为\emph{初等变换}。
\end{frame}


\begin{frame}{小结}
  \begin{enumerate}
    \item 何为矩阵？何为方阵？何为方阵的行列式？何为行列式映射？
    \item 何为三类初等行变换？何为三类初等列变换？
    \item 何为阶梯形矩阵？如何通过一系列初等行变换把矩阵化成阶梯形？
    \item 说说为何可以通过化阶梯形来计算行列式。
    \item 准上 (下) 三角形行列式的公式？
  \end{enumerate}
\end{frame}
